/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'Merriweather Sans', sans-serif; overflow-x: hidden; }

/* ── Scroll animations ── */
.anim { opacity: 0; transition-timing-function: cubic-bezier(.25,.46,.45,.94); }
.fade-up  { transform: translateY(40px); transition: opacity .6s, transform .6s; }
.fade-top { transform: translateY(-24px); transition: opacity .6s, transform .6s; }
.slide-l  { transform: translateX(-50px); transition: opacity .7s, transform .7s; }
.slide-r  { transform: translateX(50px);  transition: opacity .8s, transform .8s; }
.slide-xl { transform: translateX(-30px); transition: opacity .55s, transform .55s; }
.scale-in { transform: scale(.7);        transition: opacity .45s, transform .45s; }
.anim.in  { opacity: 1; transform: none !important; }

/* Cascade delays */
.d1  { transition-delay: .10s; }
.d2  { transition-delay: .20s; }
.d3  { transition-delay: .30s; }
.d4  { transition-delay: .40s; }
.d5  { transition-delay: .50s; }

/* ── Hero enter animations (page-load) ── */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}
.hero-title { animation: heroFadeUp .7s ease both; }
.hero-sub   { animation: heroFadeUp .7s .2s ease both; }

/* ── Partners scroll ── */
@keyframes partners-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.partners-track {
    display: flex;
    align-items: center;
    gap: 60px;
    width: max-content;
    animation: partners-scroll 22s linear infinite;
}
.partners-track:hover { animation-play-state: paused; }

/* ── Smooth section shape ── */
.hero-wave svg { display: block; }

/* ── Solution card hover ── */
.tech-card { transition: transform .25s, box-shadow .25s; }
.tech-card:hover { transform: translateY(-6px); box-shadow: 0 12px 32px rgba(52,78,65,.13); }

/* ── Step icon hover ── */
.step-icon { transition: transform .25s, box-shadow .25s; }
.step-icon:hover { transform: translateY(-8px) scale(1.08); }

/* ── CTA button hover ── */
.cta-btn { transition: background .2s; }
.cta-btn:hover { background: #3a5a40 !important; }

/* ── Partners mask ── */
.partners-mask { mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%); -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%); }

/* ── Underline SVG ── */
.headline-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.headline-wrap h2 { font-weight: 700; text-align: center; line-height: 1.2; font-size: clamp(32px, 5vw, 50px); }

/* ── Mission grid ── */
.mission-grid { display: inline-grid; }
.mission-grid > * { grid-column: 1; grid-row: 1; }

/* ── Contact icon box ── */
.contact-icon-box { transition: transform .2s; }
.contact-icon-box:hover { transform: scale(1.06); }

/* ── Footer link hover ── */
.footer-link { transition: color .2s; }
.footer-link:hover { color: #a3b18a; }

/* Partners - style */
.partners-track img {
  height: 40px;
  opacity: .6;
  transition: opacity .2s;
}
.partners-track img:hover {
  opacity: 1;
}

/* Icons - color switch */
.icon-colored {
  filter: brightness(0.55) saturate(1.2);
}